javascript oop、instanceof 和基类
全部标签 我有两个类A和B,A是B的基类。我读到Python中的所有方法都是虚拟的。那么如何调用基类的方法,因为当我尝试调用它时,派生类的方法会按预期调用?>>>classA(object):defprint_it(self):print'A'>>>classB(A):defprint_it(self):print'B'>>>x=B()>>>x.print_it()B>>>x.A??? 最佳答案 使用super:>>>classA(object):...defprint_it(self):...print'A'...>>>classB(A):
这个问题在这里已经有了答案:Chain-callingparentinitialisersinpython[duplicate](3个回答)HowtoinvokethesuperconstructorinPython?(7个回答)关闭5年前。假设我有一个Base类和一个从Base继承的Child类。从Python中的子类调用基类构造函数的正确方法是什么?我使用super吗?这是我目前所拥有的一个例子:classBase(object):def__init__(self,value):self.value=value...classChild(Base):def__init__(self
Thisarticle有一个片段显示使用__bases__来动态更改某些Python代码的继承层次结构,方法是将一个类添加到它所继承的类的现有类集合中。好的,这很难阅读,代码可能更清晰:classFriendly:defhello(self):print'Hello'classPerson:passp=Person()Person.__bases__=(Friendly,)p.hello()#prints"Hello"也就是说,Person并没有在源码层面继承自Friendly,而是在运行时通过修改__bases__动态添加这个继承关系Person类的属性。但是,如果您将Friendl
这个问题在这里已经有了答案:HowtoinvokethesuperconstructorinPython?(7个回答)关闭6年前。如果我有一个python类:classBaseClass(object):#codeandtheinitfunctionofthebaseclass然后我定义一个子类如:classChildClass(BaseClass):#hereIwanttocalltheinitfunctionofthebaseclass如果基类的init函数接受一些我将它们作为子类的init函数的参数的参数,我如何将这些参数传递给基类?我写的代码是:classCar(object)
为什么我不能将基类实例强制转换为派生类?例如,如果我有一个扩展类C的B类,为什么我不能这样做?Bb=(B)(newC());还是这个?Cc=newC();Bb=(B)c;好的,让我更具体地说明我想要做什么。这是我所拥有的:publicclassBase(){protectedBaseNoden;publicvoidfoo(BaseNodex){n.foo(x);}}publicclassBaseNode(){publicvoidfoo(BaseNodex){...}}现在我想创建一组扩展Base和Basenode的新类,如下所示:publicclassDerivedextendsBas
我在变量中有异常(未抛出)。最好的选择是什么?Exceptionexception=someObj.getExcp();try{throwexception;}catch(ExceptionExample1e){e.getSomeCustomViolations();}catch(ExceptionExample2e){e.getSomeOtherCustomViolations();}或Exceptionexception=someObj.getExcp();if(exceptioninstanceofExceptionExample1){exception.getSomeCusto
publicclassTableModel2extendsTableModel1{...}TableModel2tableModel=newTableModel2();booleant1=tableModelinstanceofTableModel1;booleant2=tableModelinstanceofTableModel2;在上面的例子中,t1和t2是true。那么,如何使用instanceof区分TableModel1和TableModel2? 最佳答案 你不能用instanceof来做,但是你可以用getClass来做
在下面的示例中(来self的类(class)包),我们希望给Square实例c1一些其他对象p1的引用,但前提是这2个是兼容的类型。if(p1instanceofSquare){c1=(Square)p1;}这里我不明白的是,我们首先检查p1确实是一个Square,然后我们仍然对其进行转换。如果是Square,为什么要投?我怀疑答案在于表面类型和实际类型之间的区别,但我仍然感到困惑......编辑:编译器会如何处理:if(p1instanceofSquare){c1=p1;}编辑2:instanceof检查的是actual类型而不是apparent类型的问题吗?然后Actor改变了明显
在我的应用程序中,我有一个二维实体数组来表示网格。网格中的每个位置都可以是空的,也可以被一个实体占据(在这种情况下,它只是一个人或墙)。现在我使用instanceof来检查实体是人还是墙。我正在考虑为每个实体提供一个方法,该方法返回一个enum说明它们的类型,即墙实体将返回EntityType.WALL。我想知道这是否是删除instanceof使用的最佳主意,还是instanceof适合这种情况? 最佳答案 使用Tell,Don'tAsk:与其问对象是什么然后对此使用react,不如告诉对象要做什么,然后墙壁或人决定他们如何做他们需
我重写了equals()方法,我需要知道对象是否是Event子类的实例(Event是父类(superclass))。我想要“objsubclassofEvent”之类的东西。这是怎么做到的?提前致谢! 最佳答案 instanceof可以处理得很好。 关于Java-是否有像instanceof这样的"subclassof"?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/26997